package com.hy.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hy.entity.ModuleConfig;
import com.hy.mapper.ModuleConfigMapper;
import com.hy.service.ModuleConfigService;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class ModuleConfigServiceImpl extends ServiceImpl<ModuleConfigMapper, ModuleConfig> implements ModuleConfigService {

    @Override
    public List<ModuleConfig> getVisibleModules() {
        return list(new LambdaQueryWrapper<ModuleConfig>()
            .eq(ModuleConfig::getIsVisible, true)
            .orderByAsc(ModuleConfig::getSortOrder));
    }

    @Override
    public void updateVisibility(String moduleCode, Boolean isVisible) {
        update(new LambdaUpdateWrapper<ModuleConfig>()
            .eq(ModuleConfig::getModuleCode, moduleCode)
            .set(ModuleConfig::getIsVisible, isVisible));
    }

    @Override
    public void updateSortOrder(String moduleCode, Integer sortOrder) {
        update(new LambdaUpdateWrapper<ModuleConfig>()
            .eq(ModuleConfig::getModuleCode, moduleCode)
            .set(ModuleConfig::getSortOrder, sortOrder));
    }
}